using System;
using ns27;

namespace Triton.Game.Mapping
{
	[Attribute38("FourHorsemenSpell")]
	public class FourHorsemenSpell : SuperSpell
	{
		public SuperSpell m_MissileSpell => method_3<SuperSpell>("m_MissileSpell");

		public Spell m_DeathSpell => method_3<Spell>("m_DeathSpell");

		public int m_missilesWAitingToFinish => method_2<int>("m_missilesWAitingToFinish");

		public FourHorsemenSpell(IntPtr address, string className)
			: base(address, className)
		{
		}

		public FourHorsemenSpell(IntPtr address)
			: this(address, "FourHorsemenSpell")
		{
		}

		public new void OnAction(SpellStateType prevStateType)
		{
			method_8("OnAction", prevStateType);
		}

		public void FireMissileVolley()
		{
			method_8("FireMissileVolley");
		}

		public void FireSingleMissile(int targetIndex)
		{
			method_8("FireSingleMissile", targetIndex);
		}

		public void OnMissileFinished(Spell spell, object userData)
		{
			method_8("OnMissileFinished", spell, userData);
		}

		public void DoFinalImpactIfPossible()
		{
			method_8("DoFinalImpactIfPossible");
		}

		public void OnDeathFinished(Spell spell, object userData)
		{
			method_8("OnDeathFinished", spell, userData);
		}
	}
}
